home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / RIncludes / Pict.r < prev    next >
Encoding:
Text File  |  1993-11-30  |  51.8 KB  |  1,598 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Pict.r
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12.  
  13. #ifndef __PICT_R__
  14. #define __PICT_R__
  15.  
  16. #ifndef oldPICTCompatible
  17. #define    oldPICTCompatible true
  18. #endif
  19.  
  20. type 'PICT' {
  21.     startOfPict:
  22.         unsigned integer = (endOfPict - startOfPict) >> 3;
  23.         Rect;                                    /* Bounds of picture */
  24.         switch {
  25.             case VersionOne:
  26.                 key integer = $1101;
  27.                 array OpCodes {
  28.                     switch {
  29.                         case NOP:
  30.                             key byte = $00;
  31.  
  32.                         case ClipRgn:
  33.                             key byte = $01;
  34.     ClipRgnStart:            integer = (ClipRgnEnd[$$ArrayIndex(OpCodes)] - ClipRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  35.                             Rect;                /* region’s enclosing rect */
  36.                             hex string [$$Word(ClipRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  37.     ClipRgnEnd:
  38.                         case BkPat:
  39.                             key byte = $02;
  40.                             hex string [8];
  41.  
  42.                         case TxFont:
  43.                             key byte = $03;
  44.                             integer;            /* font */
  45.  
  46.                         case TxFace:
  47.                             key byte = $04;
  48.                             unsigned hex byte;    /* text face */
  49.  
  50.                         case TxMode:
  51.                             key byte = $05;
  52.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  53.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  54.                                         patCopy, patOr, patXor, patBic,
  55.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  56.  
  57.                         case SpExtra:
  58.                             key byte = $06;
  59.                             unsigned hex longint;
  60.  
  61.                         case PnSize:
  62.                             key byte = $07;
  63.                             Point;
  64.  
  65.                         case PnMode:
  66.                             key byte = $08;
  67.                             unsigned hex integer;
  68.  
  69.                         case PnPat:
  70.                             key byte = $09;
  71.                             hex string [8];
  72.  
  73.                         case ThePat:
  74.                             key byte = $0A;
  75.                             hex string [8];
  76.  
  77.                         case OvSize:
  78.                             key byte = $0B;
  79.                             Point;
  80.  
  81.                         case Origin:
  82.                             key byte = $0C;
  83.                             integer;            /* dh */
  84.                             integer;            /* dv */
  85.  
  86.                         case TxSize:
  87.                             key byte = $0D;
  88.                             integer;
  89.  
  90.                         case FgColor:
  91.                             key byte = $0E;
  92.                             longint;
  93.  
  94.                         case BkColor:
  95.                             key byte = $0F;
  96.                             longint;
  97.  
  98.                         case TxRatio:
  99.                             key byte = $10;
  100.                             Point;                /* numer */
  101.                             Point;                /* denom */
  102.  
  103.                         case PicVersion:
  104.                             key byte = $11;
  105.                             byte;
  106.  
  107.                         case Line:
  108.                             key byte = $20;
  109.                             Point;                /* pnLoc */
  110.                             Point;                /* newPt */
  111.  
  112.                         case LineFrom:
  113.                             key byte = $21;
  114.                             Point;                /* newPt */
  115.  
  116.                         case ShortLine:
  117.                             key byte = $22;
  118.                             Point;                /* pnLoc */
  119.                             byte;                /* dh */
  120.                             byte;                /* dv */
  121.  
  122.                         case ShortLineFrom:
  123.                             key byte = $23;
  124.                             byte;                /* dh */
  125.                             byte;                /* dv */
  126.  
  127.                         case LongText:
  128.                             key byte = $28;
  129.                             Point;                /* txLoc */
  130.                             pstring;
  131.  
  132.                         case dhText:
  133.                             key byte = $29;
  134.                             byte;                /* dh */
  135.                             pstring;
  136.  
  137.                         case dvText:
  138.                             key byte = $2A;
  139.                             byte;                /* dvh */
  140.                             pstring;
  141.  
  142.                         case dhdvText:
  143.                             key byte = $2B;
  144.                             byte;                /* dh */
  145.                             byte;                /* dv */
  146.                             pstring;
  147.  
  148.                         case FrameRect:
  149.                             key byte = $30;
  150.                             Rect;
  151.  
  152.                         case PaintRect:
  153.                             key byte = $31;
  154.                             Rect;
  155.  
  156.                         case EraseRect:
  157.                             key byte = $32;
  158.                             Rect;
  159.  
  160.                         case InvertRect:
  161.                             key byte = $33;
  162.                             Rect;
  163.  
  164.                         case FillRect:
  165.                             key byte = $34;
  166.                             Rect;
  167.  
  168.                         case FrameSameRect:
  169.                             key byte = $38;
  170.  
  171.                         case PaintSameRect:
  172.                             key byte = $39;
  173.  
  174.                         case EraseSameRect:
  175.                             key byte = $3A;
  176.  
  177.                         case InvertSameRect:
  178.                             key byte = $3B;
  179.  
  180.                         case FillSameRect:
  181.                             key byte = $3C;
  182.  
  183.                         case FrameRRect:
  184.                             key byte = $40;
  185.                             Rect;
  186.  
  187.                         case PaintRRect:
  188.                             key byte = $41;
  189.                             Rect;
  190.  
  191.                         case EraseRRect:
  192.                             key byte = $42;
  193.                             Rect;
  194.  
  195.                         case InvertRRect:
  196.                             key byte = $43;
  197.                             Rect;
  198.  
  199.                         case FillRRect:
  200.                             key byte = $44;
  201.                             Rect;
  202.  
  203.                         case FrameSameRRect:
  204.                             key byte = $48;
  205.  
  206.                         case PaintSameRRect:
  207.                             key byte = $49;
  208.  
  209.                         case EraseSameRRect:
  210.                             key byte = $4A;
  211.  
  212.                         case InvertSameRRect:
  213.                             key byte = $4B;
  214.  
  215.                         case FillSameRRect:
  216.                             key byte = $4C;
  217.  
  218.                         case FrameOval:
  219.                             key byte = $50;
  220.                             Rect;
  221.  
  222.                         case PaintOval:
  223.                             key byte = $51;
  224.                             Rect;
  225.  
  226.                         case EraseOval:
  227.                             key byte = $52;
  228.                             Rect;
  229.  
  230.                         case InvertOval:
  231.                             key byte = $53;
  232.                             Rect;
  233.  
  234.                         case FillOval:
  235.                             key byte = $54;
  236.                             Rect;
  237.  
  238.                         case FrameSameOval:
  239.                             key byte = $58;
  240.  
  241.                         case PaintSameOval:
  242.                             key byte = $59;
  243.  
  244.                         case EraseSameOval:
  245.                             key byte = $5A;
  246.  
  247.                         case InvertSameOval:
  248.                             key byte = $5B;
  249.  
  250.                         case FillSameOval:
  251.                             key byte = $5C;
  252.  
  253.                         case FrameArc:
  254.                             key byte = $60;
  255.                             Rect;
  256.                             integer;                /* startAngle */
  257.                             integer;                /* arcAngle */
  258.  
  259.                         case PaintArc:
  260.                             key byte = $61;
  261.                             Rect;
  262.                             integer;                /* startAngle */
  263.                             integer;                /* arcAngle */
  264.  
  265.                         case EraseArc:
  266.                             key byte = $62;
  267.                             Rect;
  268.                             integer;                /* startAngle */
  269.                             integer;                /* arcAngle */
  270.  
  271.                         case InvertArc:
  272.                             key byte = $63;
  273.                             Rect;
  274.                             integer;                /* startAngle */
  275.                             integer;                /* arcAngle */
  276.  
  277.                         case FillArc:
  278.                             key byte = $64;
  279.                             Rect;
  280.                             integer;                /* startAngle */
  281.                             integer;                /* arcAngle */
  282.  
  283.                         case FrameSameArc:
  284.                             key byte = $68;
  285.                             integer;                /* startAngle */
  286.                             integer;                /* arcAngle */
  287.  
  288.                         case PaintSameArc:
  289.                             key byte = $69;
  290.                             integer;                /* startAngle */
  291.                             integer;                /* arcAngle */
  292.  
  293.                         case EraseSameArc:
  294.                             key byte = $6A;
  295.                             integer;                /* startAngle */
  296.                             integer;                /* arcAngle */
  297.  
  298.                         case InvertSameArc:
  299.                             key byte = $6B;
  300.                             integer;                /* startAngle */
  301.                             integer;                /* arcAngle */
  302.  
  303.                         case FillSameArc:
  304.                             key byte = $6C;
  305.                             integer;                /* startAngle */
  306.                             integer;                /* arcAngle */
  307.  
  308.                         case FramePoly:
  309.                             key byte = $70;
  310.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  311.                             Rect;                    /* enclosing rectangle */
  312.                             wide array PolyPoints { Point; };
  313.  
  314.                         case PaintPoly:
  315.                             key byte = $71;
  316.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  317.                             Rect;                    /* enclosing rectangle */
  318.                             wide array PolyPoints { Point; };
  319.  
  320.                         case ErasePoly:
  321.                             key byte = $72;
  322.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  323.                             Rect;                    /* enclosing rectangle */
  324.                             wide array PolyPoints { Point; };
  325.  
  326.                         case InvertPoly:
  327.                             key byte = $73;
  328.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  329.                             Rect;                    /* enclosing rectangle */
  330.                             wide array PolyPoints { Point; };
  331.  
  332.                         case FillPoly:
  333.                             key byte = $74;
  334.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  335.                             Rect;                    /* enclosing rectangle */
  336.                             wide array PolyPoints { Point; };
  337.  
  338.                         case FrameSamePoly:
  339.                             key byte = $78;
  340.  
  341.                         case PaintSamePoly:
  342.                             key byte = $79;
  343.  
  344.                         case EraseSamePoly:
  345.                             key byte = $7A;
  346.  
  347.                         case InvertSamePoly:
  348.                             key byte = $7B;
  349.  
  350.                         case FillSamePoly:
  351.                             key byte = $7C;
  352.  
  353.                         case FrameRgn:
  354.                             key byte = $80;
  355.     FrameRgnStart:            integer = (FrameRgnEnd[$$ArrayIndex(OpCodes)] - FrameRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  356.                             Rect;                /* region’s enclosing rect */
  357.                             hex string [$$Word(FrameRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  358.     FrameRgnEnd:
  359.                         case PaintRgn:
  360.                             key byte = $81;
  361.     PaintRgnStart:            integer = (PaintRgnEnd[$$ArrayIndex(OpCodes)] - PaintRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  362.                             Rect;                /* region’s enclosing rect */
  363.                             hex string [$$Word(PaintRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  364.     PaintRgnEnd:
  365.                         case EraseRgn:
  366.                             key byte = $82;
  367.     EraseRgnStart:            integer = (EraseRgnEnd[$$ArrayIndex(OpCodes)] - EraseRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  368.                             Rect;                /* region’s enclosing rect */
  369.                             hex string [$$Word(EraseRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  370.     EraseRgnEnd:
  371.                         case InvertRgn:
  372.                             key byte = $83;
  373.     InvertRgnStart:            integer = (InvertRgnEnd[$$ArrayIndex(OpCodes)] - InvertRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  374.                             Rect;                /* region’s enclosing rect */
  375.                             hex string [$$Word(InvertRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  376.     InvertRgnEnd:
  377.                         case FillRgn:
  378.                             key byte = $84;
  379.     FillRgnStart:            integer = (FillRgnEnd[$$ArrayIndex(OpCodes)] - FillRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  380.                             Rect;                /* region’s enclosing rect */
  381.                             hex string [$$Word(FillRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  382.     FillRgnEnd:
  383.                         case FrameSameRgn:
  384.                             key byte = $88;
  385.  
  386.                         case PaintSameRgn:
  387.                             key byte = $89;
  388.  
  389.                         case EraseSameRgn:
  390.                             key byte = $8A;
  391.  
  392.                         case InvertSameRgn:
  393.                             key byte = $8B;
  394.  
  395.                         case FillSameRgn:
  396.                             key byte = $8C;
  397.  
  398.                         case BitsRect:
  399.                             key byte = $90;
  400.     BitsRectRowBytes:        integer;                    /* row bytes */
  401.     BitsRectBounds:            Rect;                        /* bounds */
  402.                             Rect;                        /* srcRect */
  403.                             Rect;                        /* destRect */
  404.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  405.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  406.                                         patCopy, patOr, patXor, patBic,
  407.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  408.                             hex string [($$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  409.                                         - $$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],0,16))
  410.                                         * $$Word(BitsRectRowBytes[$$ArrayIndex(OpCodes)])];
  411.  
  412.                         case BitsRgn:
  413.                             key byte = $91;
  414.     BitsRgnRowBytes:        integer;                    /* row bytes */
  415.     BitsRgnBounds:            Rect;                        /* bounds */
  416.                             Rect;                        /* srcRect */
  417.                             Rect;                        /* destRect */
  418.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  419.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  420.                                         patCopy, patOr, patXor, patBic,
  421.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  422.     BitsRgnStart:            integer = (BitsRgnEnd[$$ArrayIndex(OpCodes)] - BitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  423.                             Rect;                /* region’s enclosing rect */
  424.                             hex string [$$Word(BitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  425.     BitsRgnEnd:
  426.                             hex string [($$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  427.                                         - $$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],0,16))
  428.                                         * $$Word(BitsRgnRowBytes[$$ArrayIndex(OpCodes)])];
  429.  
  430.                         case PackBitsRect:
  431.                             key byte = $98;
  432.     PackBitsRectRowBytes:    integer;                    /* row bytes */
  433.     PackBitsRectBounds:        Rect;                        /* bounds */
  434.                             Rect;                        /* srcRect */
  435.                             Rect;                        /* destRect */
  436.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  437.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  438.                                         patCopy, patOr, patXor, patBic,
  439.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  440.     PackBitsBits:            hex string [$$PackedSize(PackBitsBits[$$ArrayIndex(OpCodes)],
  441.                                         $$Word(PackBitsRectRowBytes[$$ArrayIndex(OpCodes)]),
  442.                                         ($$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  443.                                         - $$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],0,16)))];
  444.  
  445.                         case PackBitsRgn:
  446.                             key byte = $99;
  447.     PackBitsRgnRowBytes:    integer;                    /* row bytes */
  448.     PackBitsRgnBounds:        Rect;                        /* bounds */
  449.                             Rect;                        /* srcRect */
  450.                             Rect;                        /* destRect */
  451.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  452.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  453.                                         patCopy, patOr, patXor, patBic,
  454.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  455.     PackBitsRgnStart:        integer = (PackBitsRgnEnd[$$ArrayIndex(OpCodes)] - PackBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  456.                             Rect;                /* region’s enclosing rect */
  457.                             hex string [$$Word(PackBitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  458.     PackBitsRgnEnd:            hex string [$$PackedSize(PackBitsRgnEnd[$$ArrayIndex(OpCodes)],
  459.                                         $$Word(PackBitsRgnRowBytes[$$ArrayIndex(OpCodes)]),
  460.                                         ($$BitField(PackBitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  461.                                         - $$BitField(PackBitsRgnBounds[$$ArrayIndex(OpCodes)],0,16)))];
  462.  
  463.                         case ShortComment:
  464.                             key byte = $A0;
  465.                             integer;            /* kind */
  466.  
  467.                         case LongComment:
  468.                             key byte = $A1;
  469.                             integer;            /* kind */
  470.     LongCommentStart:        integer = (LongCommentEnd[$$ArrayIndex(OpCodes)] - LongCommentStart[$$ArrayIndex(OpCodes)] - 16) >> 3;
  471.                             hex string [$$Word(LongCommentStart[$$ArrayIndex(OpCodes)])];
  472.     LongCommentEnd:
  473.                     };
  474.                 };
  475.                 byte = $FF;     /* End of picture */
  476.  
  477.             case VersionTwo:
  478.                 key longint = $001102ff;        /* Version op + version */
  479.                 array OpCodes {
  480.                     switch {
  481.                         case Clip:
  482.                             key integer = $0001;
  483.     ClipStart:                integer = (ClipEnd[$$ArrayIndex(OpCodes)] - ClipStart[$$ArrayIndex(OpCodes)]) >> 3;
  484.                             Rect;                /* region’s enclosing rect */
  485.                             hex string [$$Word(ClipStart[$$ArrayIndex(OpCodes)]) - 10];
  486.     ClipEnd:
  487.                         case BkPat:
  488.                             key integer = $0002;
  489.                             hex string [8];
  490.  
  491.                         case TxFont:
  492.                             key integer = $0003;
  493.                             integer;            /* font */
  494.  
  495.                         case TxFace:
  496.                             key integer = $0004;
  497.                             unsigned hex byte;    /* text face */
  498.  
  499.                         case TxMode:
  500.                             key integer = $0005;
  501.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  502.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  503.                                         patCopy, patOr, patXor, patBic,
  504.                                         notPatCopy, notPatOr, notPatXor, notPatBic;
  505.  
  506.                         case SpExtra:
  507.                             key integer = $0006;
  508.                             unsigned hex longint;
  509.  
  510.                         case PnSize:
  511.                             key integer = $0007;
  512.                             Point;
  513.  
  514.                         case PnMode:
  515.                             key integer = $0008;
  516.                             unsigned hex integer;
  517.  
  518.                         case PnPat:
  519.                             key integer = $0009;
  520.                             hex string [8];
  521.  
  522.                         case FillPat:
  523.                             key integer = $000A;
  524.                             hex string [8];
  525.  
  526.                         case OvSize:
  527.                             key integer = $000B;
  528.                             Point;
  529.  
  530.                         case Origin:
  531.                             key integer = $000C;
  532.                             integer;            /* dh */
  533.                             integer;            /* dv */
  534.  
  535.                         case TxSize:
  536.                             key integer = $000D;
  537.                             integer;
  538.  
  539.                         case FgColor:
  540.                             key integer = $000E;
  541.                             longint;
  542.  
  543.                         case BkColor:
  544.                             key integer = $000F;
  545.                             longint;
  546.  
  547.                         case TxRatio:
  548.                             key integer = $0010;
  549.                             Point;                /* numer */
  550.                             Point;                /* denom */
  551.  
  552.                         case Version:
  553.                             key integer = $0011;
  554.                             byte;
  555.  
  556.                         case BkPixPat:
  557.                             key integer = $0012;
  558.                             switch {
  559.                                 case newPattern:
  560.                                     key integer = 1;
  561.                                     hex string [8];            /* old-style pattern    */
  562.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  563.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  564.     BkPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  565.     BkPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  566.                                     integer;                                                /* pixMap vers number    */
  567.                                     integer    unpacked;                                        /* Packing format        */
  568.                                     unsigned longint;                                        /* Size of pixel data    */
  569.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  570.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  571.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  572.                                     integer;                                                /* # bits in pixel        */
  573.                                     integer;                                                /* # components in pixel*/
  574.                                     integer;                                                /* # bits per field        */
  575.                                     unsigned longint;                                        /* Offset to next plane    */
  576.                                     unsigned longint;                                        /* Offset to color table*/
  577.                                     fill long;                                                /* Reserved                */
  578.                                     /* Color Table */
  579.                                     unsigned hex longint;                                    /* ctSeed                */
  580.                                     integer;                                                /* ctFlags                */
  581.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  582.                                     wide array ColorSpec {
  583.                                             integer;                                        /* value                */
  584.                                             unsigned integer;                                /* RGB:    red                */
  585.                                             unsigned integer;                                /*        green            */
  586.                                             unsigned integer;                                /*        blue            */
  587.                                     };
  588.                                     /* If rowBytes < 8 then data is unpacked,
  589.                                        if >= 8, then data is packed */
  590.     BkPixPatBits:                    hex string [($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  591.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  592.                                                 ($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  593.                                                 $$PackedSize(BkPixPatBits[$$ArrayIndex(OpCodes)],
  594.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  595.                                                 ($$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  596.                                                 - $$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  597.  
  598.                                 case ditherPattern:
  599.                                     key integer = 2;
  600.                                     hex string [8];            /* old-style pattern    */
  601.                                     unsigned integer;        /* RGB:    red                */
  602.                                     unsigned integer;        /*        green            */
  603.                                     unsigned integer;        /*        blue            */
  604.                             };
  605.  
  606.                         case PnPixPat:
  607.                             key integer = $0013;
  608.                             switch {
  609.                                 case newPattern:
  610.                                     key integer = 1;
  611.                                     hex string [8];            /* old-style pattern    */
  612.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  613.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  614.     PnPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  615.     PnPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  616.                                     integer;                                                /* pixMap vers number    */
  617.                                     integer    unpacked;                                        /* Packing format        */
  618.                                     unsigned longint;                                        /* Size of pixel data    */
  619.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  620.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  621.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  622.                                     integer;                                                /* # bits in pixel        */
  623.                                     integer;                                                /* # components in pixel*/
  624.                                     integer;                                                /* # bits per field        */
  625.                                     unsigned longint;                                        /* Offset to next plane    */
  626.                                     unsigned longint;                                        /* Offset to color table*/
  627.                                     fill long;                                                /* Reserved                */
  628.                                     /* Color Table */
  629.                                     unsigned hex longint;                                    /* ctSeed                */
  630.                                     integer;                                                /* ctFlags                */
  631.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  632.                                     wide array ColorSpec {
  633.                                             integer;                                        /* value                */
  634.                                             unsigned integer;                                /* RGB:    red                */
  635.                                             unsigned integer;                                /*        green            */
  636.                                             unsigned integer;                                /*        blue            */
  637.                                     };
  638.                                     /* If rowBytes < 8 then data is unpacked,
  639.                                        if >= 8, then data is packed */
  640.     PnPixPatBits:                    hex string [($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  641.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  642.                                                 ($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  643.                                                 $$PackedSize(PnPixPatBits[$$ArrayIndex(OpCodes)],
  644.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  645.                                                 ($$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  646.                                                 - $$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  647.  
  648.                                 case ditherPattern:
  649.                                     key integer = 2;
  650.                                     hex string [8];            /* old-style pattern    */
  651.                                     unsigned integer;        /* RGB:    red                */
  652.                                     unsigned integer;        /*        green            */
  653.                                     unsigned integer;        /*        blue            */
  654.                             };
  655.  
  656.                         case FillPixPat:
  657.                             key integer = $0014;
  658.                             switch {
  659.                                 case newPattern:
  660.                                     key integer = 1;
  661.                                     hex string [8];            /* old-style pattern    */
  662.                                     unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  663.                                     unsigned bitstring[2] = 0;                                /* Must be 0            */
  664.     FillPixPatpMapRowBytes:            unsigned bitstring[13];                                    /* Offset to next row    */
  665.     FillPixPatBounds:                    rect;                                                    /* Bitmap bounds        */
  666.                                     integer;                                                /* pixMap vers number    */
  667.                                     integer    unpacked;                                        /* Packing format        */
  668.                                     unsigned longint;                                        /* Size of pixel data    */
  669.                                     unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  670.                                     unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  671.                                     integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  672.                                     integer;                                                /* # bits in pixel        */
  673.                                     integer;                                                /* # components in pixel*/
  674.                                     integer;                                                /* # bits per field        */
  675.                                     unsigned longint;                                        /* Offset to next plane    */
  676.                                     unsigned longint;                                        /* Offset to color table*/
  677.                                     fill long;                                                /* Reserved                */
  678.                                     /* Color Table */
  679.                                     unsigned hex longint;                                    /* ctSeed                */
  680.                                     integer;                                                /* ctFlags                */
  681.                                     integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  682.                                     wide array ColorSpec {
  683.                                             integer;                                        /* value                */
  684.                                             unsigned integer;                                /* RGB:    red                */
  685.                                             unsigned integer;                                /*        green            */
  686.                                             unsigned integer;                                /*        blue            */
  687.                                     };
  688.                                     /* If rowBytes < 8 then data is unpacked,
  689.                                        if >= 8, then data is packed */
  690.     FillPixPatBits:                    hex string [($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  691.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  692.                                                 ($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  693.                                                 $$PackedSize(FillPixPatBits[$$ArrayIndex(OpCodes)],
  694.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  695.                                                 ($$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  696.                                                 - $$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  697.  
  698.                                 case ditherPattern:
  699.                                     key integer = 2;
  700.                                     hex string [8];            /* old-style pattern    */
  701.                                     unsigned integer;        /* RGB:    red                */
  702.                                     unsigned integer;        /*        green            */
  703.                                     unsigned integer;        /*        blue            */
  704.                             };
  705.  
  706.                         case PnLocHFrac:
  707.                             key integer = $0015;
  708.                             unsigned hex integer;
  709.  
  710.                         case ChExtra:
  711.                             key integer = $0016;
  712.                             integer;                        /* extra for each character */
  713.  
  714.                         case AppleReserved0017:
  715.                             key integer = $0017;
  716.  
  717.                         case AppleReserved0018:
  718.                             key integer = $0018;
  719.  
  720.                         case AppleReserved0019:
  721.                             key integer = $0019;
  722.  
  723.                         case RGBFgCol:
  724.                             key integer = $001A;
  725.                             unsigned integer;        /* RGB:    red                */
  726.                             unsigned integer;        /*        green            */
  727.                             unsigned integer;        /*        blue            */
  728.  
  729.                         case RGBBkCol:
  730.                             key integer = $001B;
  731.                             unsigned integer;        /* RGB:    red                */
  732.                             unsigned integer;        /*        green            */
  733.                             unsigned integer;        /*        blue            */
  734.  
  735.                         case HiliteMode:
  736.                             key integer = $001C;
  737.  
  738.                         case HiliteColor:
  739.                             key integer = $001D;
  740.                             unsigned integer;        /* RGB:    red                */
  741.                             unsigned integer;        /*        green            */
  742.                             unsigned integer;        /*        blue            */
  743.  
  744.                         case DefHilite:
  745.                             key integer = $001E;
  746.  
  747.                         case OpColor:
  748.                             key integer = $001F;
  749.                             unsigned integer;        /* RGB:    red                */
  750.                             unsigned integer;        /*        green            */
  751.                             unsigned integer;        /*        blue            */
  752.  
  753.                         case Line:
  754.                             key integer = $0020;
  755.                             Point;                    /* pnLoc */
  756.                             Point;                    /* newPt */
  757.  
  758.                         case LineFrom:
  759.                             key integer = $0021;
  760.                             Point;                    /* newPt */
  761.  
  762.                         case ShortLine:
  763.                             key integer = $0022;
  764.                             Point;                    /* pnLoc */
  765.                             byte;                    /* dh */
  766.                             byte;                    /* dv */
  767.  
  768.                         case ShortLineFrom:
  769.                             key integer = $0023;
  770.                             byte;                    /* dh */
  771.                             byte;                    /* dv */
  772.  
  773.                         case AppleReserved0024:
  774.                             key integer = $0024;
  775.                 AR24:        unsigned integer = (AR24End[$$ArrayIndex(Opcodes)] - AR24[$$ArrayIndex(Opcodes)]) / 8 - 2;
  776.                             hex string [$$Word(AR24[$$ArrayIndex(Opcodes)])];
  777.                 AR24End:
  778.  
  779.                         case AppleReserved0025:
  780.                             key integer = $0025;
  781.                 AR25:        unsigned integer = (AR25End[$$ArrayIndex(Opcodes)] - AR25[$$ArrayIndex(Opcodes)]) / 8 - 2;
  782.                             hex string [$$Word(AR25[$$ArrayIndex(Opcodes)])];
  783.                 AR25End:
  784.  
  785.                         case AppleReserved0026:
  786.                             key integer = $0026;
  787.                 AR26:        unsigned integer = (AR26End[$$ArrayIndex(Opcodes)] - AR26[$$ArrayIndex(Opcodes)]) / 8 - 2;
  788.                             hex string [$$Word(AR26[$$ArrayIndex(Opcodes)])];
  789.                 AR26End:
  790.  
  791.                         case AppleReserved0027:
  792.                             key integer = $0027;
  793.                 AR27:        unsigned integer = (AR27End[$$ArrayIndex(Opcodes)] - AR27[$$ArrayIndex(Opcodes)]) / 8 - 2;
  794.                             hex string [$$Word(AR27[$$ArrayIndex(Opcodes)])];
  795.                 AR27End:
  796.  
  797.                         case LongText:
  798.                             key integer = $0028;
  799.                             Point;                /* TxLoc */
  800.                             pstring;            /* text */
  801.  
  802.                         case DHText:
  803.                             key integer = $0029;
  804.                             byte;                /* dh */
  805.                             pstring;            /* text */
  806.  
  807.                         case DVText:
  808.                             key integer = $002A;
  809.                             byte;                /* dv */
  810.                             pstring;            /* text */
  811.  
  812.                         case DHDVText:
  813.                             key integer = $002B;
  814.                             byte;                /* dh */
  815.                             byte;                /* dv */
  816.                             pstring;            /* text */
  817.  
  818.                         case FontName:
  819.                             key integer = $002C;
  820.                 FontNameBegin:    unsigned integer = (FontNameEnd[$$ArrayIndex(Opcodes)] - FontNameBegin[$$ArrayIndex(Opcodes)]) / 8 - 2;
  821.                             integer;            /* Old font ID */
  822.                             pstring;            /* Font name */
  823.                 FontNameEnd:
  824.  
  825.                         case LineJustify:
  826.                             key integer = $002D;
  827.                             unsigned integer = 8;
  828.                             longint;            /* Inter-character spacing */
  829.                             longint;            /* Total extra space for justification */
  830.  
  831.                         case AppleReserved002E:
  832.                             key integer = $002E;
  833.                 AR2E:        unsigned integer = (AR2EEnd[$$ArrayIndex(Opcodes)] - AR2E[$$ArrayIndex(Opcodes)]) / 8 - 2;
  834.                             hex string [$$Word(AR2E[$$ArrayIndex(Opcodes)])];
  835.                 AR2EEnd:
  836.  
  837.                         case AppleReserved002F:
  838.                             key integer = $002F;
  839.                 AR2F:        unsigned integer = (AR2FEnd[$$ArrayIndex(Opcodes)] - AR2F[$$ArrayIndex(Opcodes)]) / 8 - 2;
  840.                             hex string [$$Word(AR2F[$$ArrayIndex(Opcodes)])];
  841.                 AR2FEnd:
  842.  
  843.                         case FrameRect:
  844.                             key integer = $0030;
  845.                             Rect;
  846.  
  847.                         case PaintRect:
  848.                             key integer = $0031;
  849.                             Rect;
  850.  
  851.                         case EraseRect:
  852.                             key integer = $0032;
  853.                             Rect;
  854.  
  855.                         case InvertRect:
  856.                             key integer = $0033;
  857.                             Rect;
  858.  
  859.                         case FillRect:
  860.                             key integer = $0034;
  861.                             Rect;
  862.  
  863.                         case AppleReserved0035:
  864.                             key integer = $0035;
  865.                             Rect;
  866.  
  867.                         case AppleReserved0036:
  868.                             key integer = $0036;
  869.                             Rect;
  870.  
  871.                         case AppleReserved0037:
  872.                             key integer = $0037;
  873.                             Rect;
  874.  
  875.                         case FrameSameRect:
  876.                             key integer = $0038;
  877.  
  878.                         case PaintSameRect:
  879.                             key integer = $0039;
  880.  
  881.                         case EraseSameRect:
  882.                             key integer = $003A;
  883.  
  884.                         case InvertSameRect:
  885.                             key integer = $003B;
  886.  
  887.                         case FillSameRect:
  888.                             key integer = $003C;
  889.  
  890.                         case AppleReserved003D:
  891.                             key integer = $003D;
  892.  
  893.                         case AppleReserved003E:
  894.                             key integer = $003E;
  895.  
  896.                         case AppleReserved003F:
  897.                             key integer = $003F;
  898.  
  899.                         case FrameRRect:
  900.                             key integer = $0040;
  901.                             Rect;
  902.  
  903.                         case PaintRRect:
  904.                             key integer = $0041;
  905.                             Rect;
  906.  
  907.                         case EraseRRect:
  908.                             key integer = $0042;
  909.                             Rect;
  910.  
  911.                         case InvertRRect:
  912.                             key integer = $0043;
  913.                             Rect;
  914.  
  915.                         case FillRRect:
  916.                             key integer = $0044;
  917.                             Rect;
  918.  
  919.                         case AppleReserved0045:
  920.                             key integer = $0045;
  921.                             Rect;
  922.  
  923.                         case AppleReserved0046:
  924.                             key integer = $0046;
  925.                             Rect;
  926.  
  927.                         case AppleReserved0047:
  928.                             key integer = $0047;
  929.                             Rect;
  930.  
  931.                         case FrameSameRRect:
  932.                             key integer = $0048;
  933.  
  934.                         case PaintSameRRect:
  935.                             key integer = $0049;
  936.  
  937.                         case EraseSameRRect:
  938.                             key integer = $004A;
  939.  
  940.                         case InvertSameRRect:
  941.                             key integer = $004B;
  942.  
  943.                         case FillSameRRect:
  944.                             key integer = $004C;
  945.  
  946.                         case AppleReserved004D:
  947.                             key integer = $004D;
  948.  
  949.                         case AppleReserved004E:
  950.                             key integer = $004E;
  951.  
  952.                         case AppleReserved004F:
  953.                             key integer = $004F;
  954.  
  955.                         case FrameOval:
  956.                             key integer = $0050;
  957.                             Rect;
  958.  
  959.                         case PaintOval:
  960.                             key integer = $0051;
  961.                             Rect;
  962.  
  963.                         case EraseOval:
  964.                             key integer = $0052;
  965.                             Rect;
  966.  
  967.                         case InvertOval:
  968.                             key integer = $0053;
  969.                             Rect;
  970.  
  971.                         case FillOval:
  972.                             key integer = $0054;
  973.                             Rect;
  974.  
  975.                         case AppleReserved0055:
  976.                             key integer = $0055;
  977.                             Rect;
  978.  
  979.                         case AppleReserved0056:
  980.                             key integer = $0056;
  981.                             Rect;
  982.  
  983.                         case AppleReserved0057:
  984.                             key integer = $0057;
  985.                             Rect;
  986.  
  987.                         case FrameSameOval:
  988.                             key integer = $0058;
  989.  
  990.                         case PaintSameOval:
  991.                             key integer = $0059;
  992.  
  993.                         case EraseSameOval:
  994.                             key integer = $005A;
  995.  
  996.                         case InvertSameOval:
  997.                             key integer = $005B;
  998.  
  999.                         case FillSameOval:
  1000.                             key integer = $005C;
  1001.  
  1002.                         case AppleReserved005D:
  1003.                             key integer = $005D;
  1004.  
  1005.                         case AppleReserved005E:
  1006.                             key integer = $005E;
  1007.  
  1008.                         case FrameArc:
  1009.                             key integer = $0060;
  1010.                             Rect;
  1011.                             integer;                /* startAngle */
  1012.                             integer;                /* arcAngle */
  1013.  
  1014.                         case PaintArc:
  1015.                             key integer = $0061;
  1016.                             Rect;
  1017.                             integer;                /* startAngle */
  1018.                             integer;                /* arcAngle */
  1019.  
  1020.                         case EraseArc:
  1021.                             key integer = $0062;
  1022.                             Rect;
  1023.                             integer;                /* startAngle */
  1024.                             integer;                /* arcAngle */
  1025.  
  1026.                         case InvertArc:
  1027.                             key integer = $0063;
  1028.                             Rect;
  1029.                             integer;                /* startAngle */
  1030.                             integer;                /* arcAngle */
  1031.  
  1032.                         case FillArc:
  1033.                             key integer = $0064;
  1034.                             Rect;
  1035.                             integer;                /* startAngle */
  1036.                             integer;                /* arcAngle */
  1037.  
  1038.                         case AppleReserved0065:
  1039.                             key integer = $0065;
  1040.                             Rect;
  1041.                             integer;                /* startAngle */
  1042.                             integer;                /* arcAngle */
  1043.  
  1044.                         case AppleReserved0066:
  1045.                             key integer = $0066;
  1046.                             Rect;
  1047.                             integer;                /* startAngle */
  1048.                             integer;                /* arcAngle */
  1049.  
  1050.                         case AppleReserved0067:
  1051.                             key integer = $0067;
  1052.                             Rect;
  1053.                             integer;                /* startAngle */
  1054.                             integer;                /* arcAngle */
  1055.  
  1056.                         case FrameSameArc:
  1057.                             key integer = $0068;
  1058.                             integer;                /* startAngle */
  1059.                             integer;                /* arcAngle */
  1060.  
  1061.                         case PaintSameArc:
  1062.                             key integer = $0069;
  1063.                             integer;                /* startAngle */
  1064.                             integer;                /* arcAngle */
  1065.  
  1066.                         case EraseSameArc:
  1067.                             key integer = $006A;
  1068.                             integer;                /* startAngle */
  1069.                             integer;                /* arcAngle */
  1070.  
  1071.                         case InvertSameArc:
  1072.                             key integer = $006B;
  1073.                             integer;                /* startAngle */
  1074.                             integer;                /* arcAngle */
  1075.  
  1076.                         case FillSameArc:
  1077.                             key integer = $006C;
  1078.                             integer;                /* startAngle */
  1079.                             integer;                /* arcAngle */
  1080.  
  1081.                         case AppleReserved006D:
  1082.                             key integer = $006D;
  1083.                             integer;                /* startAngle */
  1084.                             integer;                /* arcAngle */
  1085.  
  1086.                         case AppleReserved006E:
  1087.                             key integer = $006E;
  1088.                             integer;                /* startAngle */
  1089.                             integer;                /* arcAngle */
  1090.  
  1091.                         case AppleReserved006F:
  1092.                             key integer = $006F;
  1093.                             integer;                /* startAngle */
  1094.                             integer;                /* arcAngle */
  1095.  
  1096.                         case FramePoly:
  1097.                             key integer = $0070;
  1098.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1099.                             Rect;                    /* enclosing rectangle */
  1100.                             wide array PolyPoints { Point; };
  1101.  
  1102.                         case PaintPoly:
  1103.                             key integer = $0071;
  1104.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1105.                             Rect;                    /* enclosing rectangle */
  1106.                             wide array PolyPoints { Point; };
  1107.  
  1108.                         case ErasePoly:
  1109.                             key integer = $0072;
  1110.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1111.                             Rect;                    /* enclosing rectangle */
  1112.                             wide array PolyPoints { Point; };
  1113.  
  1114.                         case InvertPoly:
  1115.                             key integer = $0073;
  1116.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1117.                             Rect;                    /* enclosing rectangle */
  1118.                             wide array PolyPoints { Point; };
  1119.  
  1120.                         case FillPoly:
  1121.                             key integer = $0074;
  1122.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1123.                             Rect;                    /* enclosing rectangle */
  1124.                             wide array PolyPoints { Point; };
  1125.  
  1126.                         case AppleReserved0075:
  1127.                             key integer = $0075;
  1128.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1129.                             Rect;                    /* enclosing rectangle */
  1130.                             wide array PolyPoints { Point; };
  1131.  
  1132.                         case AppleReserved0076:
  1133.                             key integer = $0076;
  1134.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1135.                             Rect;                    /* enclosing rectangle */
  1136.                             wide array PolyPoints { Point; };
  1137.  
  1138.                         case AppleReserved0077:
  1139.                             key integer = $0077;
  1140.                             integer = $$CountOf(PolyPoints) * 4 + 10;
  1141.                             Rect;                    /* enclosing rectangle */
  1142.                             wide array PolyPoints { Point; };
  1143.  
  1144.                         case FrameSamePoly:
  1145.                             key integer = $0078;
  1146.  
  1147.                         case PaintSamePoly:
  1148.                             key integer = $0079;
  1149.  
  1150.                         case EraseSamePoly:
  1151.                             key integer = $007A;
  1152.  
  1153.                         case InvertSamePoly:
  1154.                             key integer = $007B;
  1155.  
  1156.                         case FillSamePoly:
  1157.                             key integer = $007C;
  1158.  
  1159.                         case AppleReserved007D:
  1160.                             key integer = $007D;
  1161.  
  1162.                         case AppleReserved007E:
  1163.                             key integer = $007E;
  1164.  
  1165.                         case AppleReserved007F:
  1166.                             key integer = $007F;
  1167.  
  1168.                         case FrameRgn:
  1169.                             key integer = $0080;
  1170.     FrameRgnStart2:            integer = (FrameRgnEnd2[$$ArrayIndex(OpCodes)] - FrameRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1171.                             Rect;                /* region’s enclosing rect */
  1172.                             hex string [$$Word(FrameRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1173.     FrameRgnEnd2:
  1174.                         case PaintRgn:
  1175.                             key integer = $0081;
  1176.     PaintRgnStart2:            integer = (PaintRgnEnd2[$$ArrayIndex(OpCodes)] - PaintRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1177.                             Rect;                /* region’s enclosing rect */
  1178.                             hex string [$$Word(PaintRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1179.     PaintRgnEnd2:
  1180.                         case EraseRgn:
  1181.                             key integer = $0082;
  1182.     EraseRgnStart2:            integer = (EraseRgnEnd2[$$ArrayIndex(OpCodes)] - EraseRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1183.                             Rect;                /* region’s enclosing rect */
  1184.                             hex string [$$Word(EraseRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1185.     EraseRgnEnd2:
  1186.                         case InvertRgn:
  1187.                             key integer = $0083;
  1188.     InvertRgnStart2:        integer = (InvertRgnEnd2[$$ArrayIndex(OpCodes)] - InvertRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1189.                             Rect;                /* region’s enclosing rect */
  1190.                             hex string [$$Word(InvertRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1191.     InvertRgnEnd2:
  1192.                         case FillRgn:
  1193.                             key integer = $0084;
  1194.     FillRgnStart2:            integer = (FillRgnEnd2[$$ArrayIndex(OpCodes)] - FillRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1195.                             Rect;                /* region’s enclosing rect */
  1196.                             hex string [$$Word(FillRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1197.     FillRgnEnd2:
  1198.                         case AppleReserved0085:
  1199.                             key integer = $0085;
  1200.     AppleReserved0085Start:integer = (AppleReserved0085End[$$ArrayIndex(OpCodes)] - AppleReserved0085Start[$$ArrayIndex(OpCodes)]) >> 3;
  1201.                             Rect;                /* region’s enclosing rect */
  1202.                             hex string [$$Word(AppleReserved0085Start[$$ArrayIndex(OpCodes)]) - 10];
  1203.     AppleReserved0085End:
  1204.                         case AppleReserved0086:
  1205.                             key integer = $0086;
  1206.     AppleReserved0086Start:    integer = (AppleReserved0086End[$$ArrayIndex(OpCodes)] - AppleReserved0086Start[$$ArrayIndex(OpCodes)]) >> 3;
  1207.                             Rect;                /* region’s enclosing rect */
  1208.                             hex string [$$Word(AppleReserved0086Start[$$ArrayIndex(OpCodes)]) - 10];
  1209.     AppleReserved0086End:
  1210.                         case AppleReserved0087:
  1211.                             key integer = $0087;
  1212.     AppleReserved0087Start:    integer = (AppleReserved0087End[$$ArrayIndex(OpCodes)] - AppleReserved0087Start[$$ArrayIndex(OpCodes)]) >> 3;
  1213.                             Rect;                /* region’s enclosing rect */
  1214.                             hex string [$$Word(AppleReserved0087Start[$$ArrayIndex(OpCodes)]) - 10];
  1215.     AppleReserved0087End:
  1216.                         case FrameSameRgn:
  1217.                             key integer = $0088;
  1218.  
  1219.                         case PaintSameRgn:
  1220.                             key integer = $0089;
  1221.  
  1222.                         case EraseSameRgn:
  1223.                             key integer = $008A;
  1224.  
  1225.                         case InvertSameRgn:
  1226.                             key integer = $008B;
  1227.  
  1228.                         case FillSameRgn:
  1229.                             key integer = $008C;
  1230.  
  1231.                         case AppleReserved008D:
  1232.                             key integer = $008D;
  1233.  
  1234.                         case AppleReserved008E:
  1235.                             key integer = $008E;
  1236.  
  1237.                         case AppleReserved008F:
  1238.                             key integer = $008F;
  1239.  
  1240.                         case BitsRect:
  1241.                             key integer = $0090;
  1242.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1243.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1244.     BitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1245.     BitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1246.                             integer;                                                /* pixMap vers number    */
  1247.                             integer    unpacked;                                        /* Packing format        */
  1248.                             unsigned longint;                                        /* Size of pixel data    */
  1249.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1250.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1251.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1252.                             integer;                                                /* # bits in pixel        */
  1253.                             integer;                                                /* # components in pixel*/
  1254.                             integer;                                                /* # bits per field        */
  1255.                             unsigned longint;                                        /* Offset to next plane    */
  1256.                             unsigned longint;                                        /* Offset to color table*/
  1257.                             fill long;                                                /* Reserved                */
  1258.                             /* Color Table */
  1259.                             unsigned hex longint;                                    /* ctSeed                */
  1260.                             integer;                                                /* ctFlags                */
  1261.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1262.                             wide array ColorSpec {
  1263.                                     integer;                                        /* value                */
  1264.                                     unsigned integer;                                /* RGB:    red                */
  1265.                                     unsigned integer;                                /*        green            */
  1266.                                     unsigned integer;                                /*        blue            */
  1267.                             };
  1268.                             Rect;                        /* srcRect */
  1269.                             Rect;                        /* destRect */
  1270.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1271.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1272.                                         patCopy, patOr, patXor, patBic,
  1273.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1274.                                         blend = 32, addPin, addOver, subPin,
  1275.                                         adMax = 37, subOver, adMin;
  1276.     BitsRectBits:            hex string [$$BitField(BitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1277.                                         ($$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1278.                                         - $$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1279.  
  1280.  
  1281.                         case BitsRgn:
  1282.                             key integer = $0091;
  1283.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1284.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1285.     BitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1286.     BitsRgnBounds2:            rect;                                                    /* Bitmap bounds        */
  1287.                             integer;                                                /* pixMap vers number    */
  1288.                             integer    unpacked;                                        /* Packing format        */
  1289.                             unsigned longint;                                        /* Size of pixel data    */
  1290.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1291.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1292.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1293.                             integer;                                                /* # bits in pixel        */
  1294.                             integer;                                                /* # components in pixel*/
  1295.                             integer;                                                /* # bits per field        */
  1296.                             unsigned longint;                                        /* Offset to next plane    */
  1297.                             unsigned longint;                                        /* Offset to color table*/
  1298.                             fill long;                                                /* Reserved                */
  1299.                             /* Color Table */
  1300.                             unsigned hex longint;                                    /* ctSeed                */
  1301.                             integer;                                                /* ctFlags                */
  1302.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1303.                             wide array ColorSpec {
  1304.                                     integer;                                        /* value                */
  1305.                                     unsigned integer;                                /* RGB:    red                */
  1306.                                     unsigned integer;                                /*        green            */
  1307.                                     unsigned integer;                                /*        blue            */
  1308.                             };
  1309.                             Rect;                        /* srcRect */
  1310.                             Rect;                        /* destRect */
  1311.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1312.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1313.                                         patCopy, patOr, patXor, patBic,
  1314.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1315.                                         blend = 32, addPin, addOver, subPin,
  1316.                                         adMax = 37, subOver, adMin;
  1317.     BitsRgnStart2:            integer = (BitsRgnEnd2[$$ArrayIndex(OpCodes)] - BitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1318.                             Rect;                /* region’s enclosing rect */
  1319.                             hex string [$$Word(BitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1320.     BitsRgnEnd2:            hex string [$$PackedSize(BitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1321.                                         $$BitField(BitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1322.                                         ($$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1323.                                         - $$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1324.  
  1325.                         case AppleReserved0092:
  1326.                             key integer = $0092;
  1327.     AppleReserved0092Start:    unsigned integer = (AppleReserved0092End[$$ArrayIndex(OpCodes)] - AppleReserved0092Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1328.                             hex string [$$Word(AppleReserved0092Start[$$ArrayIndex(OpCodes)])];
  1329.     AppleReserved0092End:
  1330.                         case AppleReserved0093:
  1331.                             key integer = $0093;
  1332.     AppleReserved0093Start:    unsigned integer = (AppleReserved0093End[$$ArrayIndex(OpCodes)] - AppleReserved0093Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1333.                             hex string [$$Word(AppleReserved0093Start[$$ArrayIndex(OpCodes)])];
  1334.     AppleReserved0093End:
  1335.                         case AppleReserved0094:
  1336.                             key integer = $0094;
  1337.     AppleReserved0094Start:    unsigned integer = (AppleReserved0094End[$$ArrayIndex(OpCodes)] - AppleReserved0094Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1338.                             hex string [$$Word(AppleReserved0094Start[$$ArrayIndex(OpCodes)])];
  1339.     AppleReserved0094End:
  1340.                         case AppleReserved0095:
  1341.                             key integer = $0095;
  1342.     AppleReserved0095Start:    unsigned integer = (AppleReserved0095End[$$ArrayIndex(OpCodes)] - AppleReserved0095Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1343.                             hex string [$$Word(AppleReserved0095Start[$$ArrayIndex(OpCodes)])];
  1344.     AppleReserved0095End:
  1345.                         case AppleReserved0096:
  1346.                             key integer = $0096;
  1347.     AppleReserved0096Start:    unsigned integer = (AppleReserved0096End[$$ArrayIndex(OpCodes)] - AppleReserved0096Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1348.                             hex string [$$Word(AppleReserved0096Start[$$ArrayIndex(OpCodes)])];
  1349.     AppleReserved0096End:
  1350.                         case AppleReserved0097:
  1351.                             key integer = $0097;
  1352.     AppleReserved0097Start:    unsigned integer = (AppleReserved0097End[$$ArrayIndex(OpCodes)] - AppleReserved0097Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1353.                             hex string [$$Word(AppleReserved0097Start[$$ArrayIndex(OpCodes)])];
  1354.     AppleReserved0097End:
  1355.                         case PackBitsRect:
  1356.                             key integer = $0098;
  1357.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1358.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1359.     PackBitsRectpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1360.     PackBitsRectBounds2:    rect;                                                    /* Bitmap bounds        */
  1361.                             integer;                                                /* pixMap vers number    */
  1362.                             integer    unpacked;                                        /* Packing format        */
  1363.                             unsigned longint;                                        /* Size of pixel data    */
  1364.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1365.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1366.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1367.                             integer;                                                /* # bits in pixel        */
  1368.                             integer;                                                /* # components in pixel*/
  1369.                             integer;                                                /* # bits per field        */
  1370.                             unsigned longint;                                        /* Offset to next plane    */
  1371.                             unsigned longint;                                        /* Offset to color table*/
  1372.                             fill long;                                                /* Reserved                */
  1373.                             /* Color Table */
  1374.                             unsigned hex longint;                                    /* ctSeed                */
  1375.                             integer;                                                /* ctFlags                */
  1376.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1377.                             wide array ColorSpec {
  1378.                                     integer;                                        /* value                */
  1379.                                     unsigned integer;                                /* RGB:    red                */
  1380.                                     unsigned integer;                                /*        green            */
  1381.                                     unsigned integer;                                /*        blue            */
  1382.                             };
  1383.                             Rect;                        /* srcRect */
  1384.                             Rect;                        /* destRect */
  1385.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1386.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1387.                                         patCopy, patOr, patXor, patBic,
  1388.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1389.                                         blend = 32, addPin, addOver, subPin,
  1390.                                         adMax = 37, subOver, adMin;
  1391.     PackBitsRectBits:        hex string [$$PackedSize(PackBitsRectBits[$$ArrayIndex(OpCodes)],
  1392.                                         $$BitField(PackBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1393.                                         ($$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1394.                                         - $$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1395.  
  1396.                         case PackBitsRgn:
  1397.                             key integer = $0099;
  1398.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1399.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1400.     PackBitsRgnpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row    */
  1401.     PackBitsRgnBounds2:    rect;                                                        /* Bitmap bounds        */
  1402.                             integer;                                                /* pixMap vers number    */
  1403.                             integer    unpacked;                                        /* Packing format        */
  1404.                             unsigned longint;                                        /* Size of pixel data    */
  1405.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1406.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1407.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1408.                             integer;                                                /* # bits in pixel        */
  1409.                             integer;                                                /* # components in pixel*/
  1410.                             integer;                                                /* # bits per field        */
  1411.                             unsigned longint;                                        /* Offset to next plane    */
  1412.                             unsigned longint;                                        /* Offset to color table*/
  1413.                             fill long;                                                /* Reserved                */
  1414.                             /* Color Table */
  1415.                             unsigned hex longint;                                    /* ctSeed                */
  1416.                             integer;                                                /* ctFlags                */
  1417.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1418.                             wide array ColorSpec {
  1419.                                     integer;                                        /* value                */
  1420.                                     unsigned integer;                                /* RGB:    red                */
  1421.                                     unsigned integer;                                /*        green            */
  1422.                                     unsigned integer;                                /*        blue            */
  1423.                             };
  1424.                             Rect;                        /* srcRect */
  1425.                             Rect;                        /* destRect */
  1426.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1427.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1428.                                         patCopy, patOr, patXor, patBic,
  1429.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1430.                                         blend = 32, addPin, addOver, subPin,
  1431.                                         adMax = 37, subOver, adMin;
  1432.     PackBitsRgnStart2:        integer = (PackBitsRgnEnd2[$$ArrayIndex(OpCodes)] - PackBitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  1433.                             Rect;                /* region’s enclosing rect */
  1434.                             hex string [$$Word(PackBitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  1435.     PackBitsRgnEnd2:        hex string [$$PackedSize(PackBitsRgnEnd2[$$ArrayIndex(OpCodes)],
  1436.                                         $$BitField(PackBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  1437.                                         ($$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1438.                                         - $$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  1439.  
  1440.                         case DirectBitsRect:
  1441.                             key integer = $009A;
  1442.     DirectBitsRectStart:    unsigned integer = (DirectBitsRectEnd[$$ArrayIndex(OpCodes)] - DirectBitsRectStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1443.                             unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  1444.                             unsigned bitstring[2] = 0;                                /* Must be 0            */
  1445.     DirectBitsRectpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1446.     DirectBitsRectBounds2:        rect;                                                    /* Bitmap bounds        */
  1447.                             integer;                                                /* pixMap vers number    */
  1448.                             integer    unpacked;                                        /* Packing format        */
  1449.                             unsigned longint;                                        /* Size of pixel data    */
  1450.                             unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  1451.                             unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  1452.                             integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  1453.                             integer;                                                /* # bits in pixel        */
  1454.                             integer;                                                /* # components in pixel*/
  1455.                             integer;                                                /* # bits per field        */
  1456.                             unsigned longint;                                        /* Offset to next plane    */
  1457.                             unsigned longint;                                        /* Offset to color table*/
  1458.                             fill long;                                                /* Reserved                */
  1459.                             /* Color Table */
  1460.                             unsigned hex longint;                                    /* ctSeed                */
  1461.                             integer;                                                /* ctFlags                */
  1462.                             integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  1463.                             wide array ColorSpec {
  1464.                                     integer;                                        /* value                */
  1465.                                     unsigned integer;                                /* RGB:    red                */
  1466.                                     unsigned integer;                                /*        green            */
  1467.                                     unsigned integer;                                /*        blue            */
  1468.                             };
  1469.                             Rect;                        /* srcRect */
  1470.                             Rect;                        /* destRect */
  1471.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1472.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1473.                                         patCopy, patOr, patXor, patBic,
  1474.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1475.                                         blend = 32, addPin, addOver, subPin,
  1476.                                         adMax = 37, subOver, adMin;
  1477.     DirectBitsRectBits:        hex string [$$BitField(DirectBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1478.                                         ($$BitField(DirectBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  1479.                                         - $$BitField(DirectBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1480.     DirectBitsRectEnd:
  1481.  
  1482.                         case DirectBitsRgn:
  1483.                             key integer = $009B;
  1484.     DirectBitsRgnStart:    unsigned integer = (DirectBitsRgnEnd[$$ArrayIndex(OpCodes)] - DirectBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1485.                             unsigned bitstring[1] = 1;                                    /* New pixMap flag        */
  1486.                             unsigned bitstring[2] = 0;                                    /* Must be 0            */
  1487.     DirectBitsRgnpMapRowBytes:    unsigned bitstring[13];                                    /* Offset to next row    */
  1488.     DirectBitsRgnBounds2:        rect;                                                    /* Bitmap bounds        */
  1489.                             integer;                                                    /* pixMap vers number    */
  1490.                             integer    unpacked;                                            /* Packing format        */
  1491.                             unsigned longint;                                            /* Size of pixel data    */
  1492.                             unsigned hex longint;                                        /* h. resolution (ppi) (fixed) */
  1493.                             unsigned hex longint;                                        /* v. resolution (ppi) (fixed) */
  1494.                             integer            chunky, chunkyPlanar, planar;                /* Pixel storage format    */
  1495.                             integer;                                                    /* # bits in pixel        */
  1496.                             integer;                                                    /* # components in pixel*/
  1497.                             integer;                                                    /* # bits per field        */
  1498.                             unsigned longint;                                            /* Offset to next plane    */
  1499.                             unsigned longint;                                            /* Offset to color table*/
  1500.                             fill long;                                                    /* Reserved                */
  1501.                             /* Color Table */
  1502.                             unsigned hex longint;                                        /* ctSeed                */
  1503.                             integer;                                                    /* ctFlags                */
  1504.                             integer = $$Countof(ColorSpec) - 1;                            /* ctSize                */
  1505.                             wide array ColorSpec {
  1506.                                     integer;                                            /* value                */
  1507.                                     unsigned integer;                                    /* RGB:    red                */
  1508.                                     unsigned integer;                                    /*        green            */
  1509.                                     unsigned integer;                                    /*        blue            */
  1510.                             };
  1511.                             Rect;                                                        /* srcRect */
  1512.                             Rect;                                                        /* destRect */
  1513.                             integer        srcCopy, srcOr, srcXor, srcBic,    /* mode */
  1514.                                         notSrcCopy, notSrcOr, notSrcXor, notSrcBic, 
  1515.                                         patCopy, patOr, patXor, patBic,
  1516.                                         notPatCopy, notPatOr, notPatXor, notPatBic,
  1517.                                         blend = 32, addPin, addOver, subPin,
  1518.                                         adMax = 37, subOver, adMin;
  1519.     DirectBitsMaskRgnStart:    integer = (DirectBitsMaskRgnEnd[$$ArrayIndex(OpCodes)] - DirectBitsMaskRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  1520.                             Rect;                                                    /* region’s enclosing rect */
  1521.                             hex string [$$Word(DirectBitsMaskRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  1522.     DirectBitsMaskRgnEnd:
  1523.     DirectBitsRgnBits:        hex string [$$BitField(DirectBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  1524.                                         ($$BitField(DirectBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  1525.                                         - $$BitField(DirectBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16))];
  1526.     DirectBitsRgnEnd:
  1527.  
  1528.                         case AppleReserved009C:
  1529.                             key integer = $009C;
  1530.     AppleReserved009CStart:    unsigned integer = (AppleReserved009CEnd[$$ArrayIndex(OpCodes)] - AppleReserved009CStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1531.                             hex string [$$Word(AppleReserved009CStart[$$ArrayIndex(OpCodes)])];
  1532.     AppleReserved009CEnd:
  1533.                         case AppleReserved009D:
  1534.                             key integer = $009D;
  1535.     AppleReserved009DStart:    unsigned integer = (AppleReserved009DEnd[$$ArrayIndex(OpCodes)] - AppleReserved009DStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1536.                             hex string [$$Word(AppleReserved009DStart[$$ArrayIndex(OpCodes)])];
  1537.     AppleReserved009DEnd:
  1538.                         case AppleReserved009E:
  1539.                             key integer = $009E;
  1540.     AppleReserved009EStart:    unsigned integer = (AppleReserved009EEnd[$$ArrayIndex(OpCodes)] - AppleReserved009EStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1541.                             hex string [$$Word(AppleReserved009EStart[$$ArrayIndex(OpCodes)])];
  1542.     AppleReserved009EEnd:
  1543.                         case AppleReserved009F:
  1544.                             key integer = $009F;
  1545.     AppleReserved009FStart:    unsigned integer = (AppleReserved009FEnd[$$ArrayIndex(OpCodes)] - AppleReserved009FStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  1546.                             hex string [$$Word(AppleReserved009FStart[$$ArrayIndex(OpCodes)])];
  1547.     AppleReserved009FEnd:
  1548.                         case ShortComment:
  1549.                             key integer = $00A0;
  1550.                             integer;                            /* comment kind */
  1551.  
  1552.                         case LongComment:
  1553.                             key integer = $00A1;
  1554.                             integer;                            /* comment kind */
  1555.     LongCommentStart2:        integer = (LongCommentEnd2[$$ArrayIndex(OpCodes)] - LongCommentStart2[$$ArrayIndex(OpCodes)] - 16) >> 3;
  1556.                             hex string [$$Word(LongCommentStart2[$$ArrayIndex(OpCodes)])];
  1557.     LongCommentEnd2:
  1558.                         case OpEndPic:
  1559.                             key integer = $00FF;
  1560.  
  1561.                         case HeaderOp:
  1562.                             key integer = $0C00;
  1563. #if oldPICTCompatible
  1564.                             longint Version2 = -1;
  1565.                             /* Fixed point bounding box */
  1566.                             unsigned hex longint;
  1567.                             unsigned hex longint;
  1568.                             unsigned hex longint;
  1569.                             unsigned hex longint;
  1570.                             longint Version2 = -1;                    /* Reserved    */
  1571. #else
  1572.                             switch    {
  1573.                                 case StandardVersion2:
  1574.                                     key    integer = -1;
  1575.                                     integer = -1;
  1576.                                     unsigned hex longint;
  1577.                                     unsigned hex longint;
  1578.                                     unsigned hex longint;
  1579.                                     unsigned hex longint;
  1580.                                     fill long;                        /* Reserved */
  1581.                                 case ExtendedVersion2:
  1582.                                     key integer = -2;
  1583.                                     fill word;
  1584.                                     unsigned hex longint;            /* hRes */
  1585.                                     unsigned hex longint;            /* vRes */
  1586.                                     Rect;                            /* SrcRect */
  1587.                                     fill long;                        /* Reserved */
  1588.                             };
  1589. #endif
  1590.                     };
  1591.                     align word;
  1592.                 };
  1593.         };
  1594.     endOfPict:
  1595. };
  1596.  
  1597. #endif __PICT_R__
  1598.